using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Runtime.Serialization;
using System.Xml.Serialization;
using Renci.Data.Interop.OpenGIS.Gml_32;

namespace Cuahsi.Data.Interop.WaterML2
{
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.233")]
    [Serializable()]
    [DebuggerStepThrough()]
    [DesignerCategory("code")]
    [XmlType(Namespace = "http://www.opengis.net/waterml/2.0")]
    [XmlRoot("DocumentMetadata", Namespace = "http://www.opengis.net/waterml/2.0", IsNullable = false)]
    [DataContract(Name = "DocumentMetadataType", Namespace = "http://www.opengis.net/waterml/2.0")]
    public partial class DocumentMetadataType : AbstractGMLType
    {

        private System.DateTime generationDateField;

        private ReferenceType versionField;

        private string generationSystemField;

        private List<ReferenceType> profileField;

        public DocumentMetadataType()
        {
            this.profileField = new List<ReferenceType>();
        }

        [DataMember()]
        public System.DateTime generationDate
        {
            get
            {
                return this.generationDateField;
            }
            set
            {
                this.generationDateField = value;
            }
        }

        [DataMember()]
        public ReferenceType version
        {
            get
            {
                return this.versionField;
            }
            set
            {
                this.versionField = value;
            }
        }

        [DataMember()]
        public string generationSystem
        {
            get
            {
                return this.generationSystemField;
            }
            set
            {
                this.generationSystemField = value;
            }
        }

        [XmlElement("profile")]
        [DataMember()]
        public List<ReferenceType> profile
        {
            get
            {
                return this.profileField;
            }
        }
    }
}